import 'package:after_sale_plugin/package_bridge.dart';
import 'package:inmotion_pro/service/app_lifecycle_service.dart';
import 'package:inmotion_pro/service/vehicle_connection_service.dart';
import 'package:inmotion_pro/service/encryption_service.dart';
import 'package:inmotion_pro/service/guest_service.dart';
import 'package:inmotion_pro/service/launch_service.dart';
import 'package:inmotion_pro/service/log_service.dart';
import 'package:inmotion_pro/service/page_cache_service.dart';
import 'package:inmotion_pro/service/permission_service.dart';
import 'package:inmotion_pro/service/user_service.dart';
import 'package:inmotion_pro/service/sercure_service.dart';
import 'package:inmotion_pro/service/global_service.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:inmotion_pro/service/web_socket_service.dart';
import 'package:lx_widgets_library/lx_widgets_library.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:sentry_logging/sentry_logging.dart';

import '../service/cache_config_service.dart';
import '../service/realtime_data_server/realtime_data_service.dart';
import '../service/backend_service.dart';
import 'const.dart';

// 配置类
class Conf {
  // 设置状态栏样式
  static setSystemUIOverlayStyle() {
    // 确保在 runApp 前调用
    SystemChrome.setSystemUIOverlayStyle(
      const SystemUiOverlayStyle(
        statusBarColor: Colors.transparent, // 状态栏背景透明（可选）
        statusBarIconBrightness: Brightness.light, // 图标白色（适用于深色背景）
        statusBarBrightness: Brightness.dark, // Android状态栏文字深色（通常自动适配）
        systemNavigationBarColor: GrayColor.gray1, // 设置导航栏颜色
        systemNavigationBarIconBrightness: Brightness.light, // 导航栏图标颜色（浅色）
      ),
    );
  }

  // 初始化服务
  static initService() async {
    // 加密服务
    Get.put(EncryptionService());

    // 安全服务
    Get.put(SercureService());

    // 日志服务
    Get.put(LogService());

    // 用户服务
    Get.put(UserService());

    // 页面缓存服务
    Get.put(PageCacheService());

    // 状态服务
    Get.put(GlobalService());

    // 蓝牙服务
    Get.put(VechileConnectionService());

    // 初始化实时数据服务
    Get.put(RealTimeDataService());

    // 缓存配置服务
    Get.put(CacheConfigService());

    // 上传服务
    Get.put(AppBackendService());

    // 权限服务
    Get.put(PermissionService());

    // 售后插件桥接服务
    Get.put(AfterSalePluginBridge());

    // 游客服务
    Get.put(GuestService());

    // WebSocket服务
    Get.put(WebSocketService());

    // 应用生命周期服务
    WidgetsFlutterBinding.ensureInitialized();

    // 启动服务
    Get.put(LaunchService());

    // 初始化服务
    await Get.putAsync(() async => AppLifecycleService());
  }

  // 初始化加载动画
  static initLoading() {
    // 初始化 EasyLoading 相关配置
    Loading.initLoading(darkMode: true);
  }

  // 初始化SentryFlutter服务
  static initSentryFlutter(VoidCallback callback) async {
    // SentryFlutter 服务平台
    await SentryFlutter.init(
      (options) {
        // 添加日志集成
        options.addIntegration(LoggingIntegration());
        // 设置dns
        options.dsn = SentryFlutterDsn;
        // 设置采样率 (0.0 - 1.0)
        options.tracesSampleRate = 1.0;
        // 启用原生崩溃捕获
        options.attachScreenshot = true;
        // 启用自动性能监控
        options.enableAutoPerformanceTracing = true;
        // 调试模式（仅在开发环境开启）
        options.debug =
            const bool.fromEnvironment('dart.vm.product') ? false : true;
      },
      // 你的应用入口
      appRunner: () => callback(),
    );
  }
}
